% This is RUMDJET.TEX, as of 17. April 1989
\documentstyle[12pt,german,rumman]{article}
%
\newcommand{\HWK}{H.$\!$-$\!$W$\!$.\ Kisker}
%
\newcommand{\RUM}{R\kern-.14em\lower.5ex\hbox{U}\kern-.14emM}
%
\pagestyle{headings}
\setcounter{secnumdepth}{0}
%
\begin{document}

\title{\RUM djet -- A DVI Driver for the HP DeskJet}

\author{
W. Kaspar / \HWK
\and Westf\"alische Wilhelms Universit\"at M\"unster
\and Universit\"atsrechenzentrum
\and April 1989}
%
\maketitle
\makeauthor
\thispagestyle{empty}

\RUM djet%
\footnote[1]{\RUM\ = Rechenzentrum der Universit\"at M\"unster} is a DVI
driver for the HP DeskJet printer. It is part of an extensive \TeX
\footnote[2]{\TeX\ is a trademark of the American Mathematical Society.
MS-DOS is a trademark of Microsoft Corporation. IBM is a trademark of
International Business Machines Corporation.}
toolkit which one of us (\HWK) has developed during the last year for
the IBM PC\footnotemark[2]. The driver is a dedicated version for IBM PC
compatible computers running MS-DOS\footnotemark[2]. Although it is
derived from Beebe's DVI driver family%
\footnote[3]{See: Nelson H.F. Beebe; A \TeX\ DVI
Driver Family. Center for Scientific Computation. University of Utah.}%
, no efforts have been made to achieve portability to other hardware or
other operating systems. The state of the software is preliminary. The
runtime behaviour is rather stable indeed, but the program is still
under development. Above all the source code at the time is not up to
our normal standard and will not be distributed by default. For those
who are courageous enough to deal with more or less `writeonly' code,
the sources are available on special request. The final version of the
driver including the sources will be available together with the above
mentioned \TeX\ toolkit in a few month.

\section{Notes on Concepts and Facilties}

The HP DeskJet is a pleasingly silent printer which offers an excellent
300 dpi print quality at a very attractive price. We consider it as a
low cost laser printer alternative for everybody's everyday use. The
greatest disadvantage is that by default the printer comes without a
single byte of RAM for downloading fonts. Even upgrading it with the
maximum of two RAM cartridges will supply no more than 256 KB of font
storage. For many documents this amount is far away from being
sufficient. Therefore most of the print job has to be done in grafic
mode. Unfortunately this brings two unpleasent aspects into account.
First the driver has to manage a rather great bitmap (over 1 MB for a
default DIN A4 page) and second printing in high resolution grafic mode
is a very dull affair.

Both problems can be solved by reducing the resolution to 150 or even
100 dpi. \RUM djet offers this possibility as an option. For high
quality output, however, the 300 dpi resolution is indispensable. This
demands a careful handling of storage. The usual approach of swapping
the bitmap to disk led to an unacceptable increase of processing time.
Better results we obtained by deviding the page from top to bottom into
several pieces which were processed and printed independently. The
multiple reading of the dvi file can be almost neglected.

Some other points concerning the driver software should be mentioned:

\begin{itemize}

\item \RUM djet does not need any swap space on disk. For us this point
is rather important. All of the university PCs are connected to a campus
network. Via the network, software including \TeX\ can be loaded, but
there is no disk capacity to store private data. So all the micro
computers which are equiped just with a floppy disk drive can run \TeX\
and \RUM djet, but cannot store a great bitmap.

\item The output can be directed to a printer immediately. This helps to
avoid the creation of big printer output files. \RUM djet is able to
compute the next output part while the DeskJet is processing its
internal print buffer. So the printer is busy without any interruption.

\item An arbitrary number of arbitrary large fonts can be used in a
document. If the RAM-storage is not sufficient to hold a character
image, the image is ored line by line into the current bitmap
immediately. The above mentioned toolkit contains a set of programs to
insert pictures created by normal PC software into a \TeX\ document.
This is achieved by making a special font with possibly very large
characters of every picture. \RUM djet can handle those fonts
independent of their sizes.

\item The output can be sent to a HP LaserJet of an arbitrary version
as well.

\item For a quick look at the printed document the resolution can be
reduced to 150 or 100 dpi. This leads to a noticeable decrease of
printing time and printfile size.

\end{itemize}

\pagebreak

\section{Usage}

The calling conventions are taken over from Beebe's driver family.
Accord\-ingly \RUM djet can be startet by the command:

\begin{example}
rumdjet\ \ options\ \ dvifile
\end{example}

The command options are (letter case is ignored):

\footnotetext[4]{Cited from: Nelson H.F. Beebe; DVIxxx - Display \TeX\
DVI Files on Assorted Output Devices.}
%
\descriptionlefttrue
\descriptioncolonfalse
%
\begin{description}

\item[{\tt -b}] Backwards order printing from the default.\footnotemark[4]

\item[{\tt -m\char35}] Reset magnification to \verb+#+.\footnotemark[4]

\item[{\tt -o\char35:\char35:\char35}]
Specify a page number, or range of page numbers,
to be selected for output.\footnotemark[4] Default is printing the whole
document.

\item[{\tt -p}{\em printer}] Output to printer immediately. The value of
{\em printer} can be LPT1, LPT2 or LPT3. Default is printing to a file.

\item[{\tt -r}{\em resolution}] Specify output resolution. The value of
{\em resolution} can be 300, 150 or 100. Default is 300.

\item[{\tt -s}{\em subfile}] Define an alternate font substitution
file.\footnotemark[4]

\item[{\tt -x\char35}{\em unit}] The {\tt -x} options specify the left
margin of the \TeX\ page on the output page in any of the indicated
units.\footnotemark[4]. Units can be: in, bp, cc, cm, dd, mm, pc, pf or
sp. Default value is 1.00in.

\item[{\tt -y\char35}{\em unit}] The {\tt -y} options specify the top margin
of the \TeX\ page on the output page in any of the indicated
units.\footnotemark[4] Units can be: in, bp, cc, cm, dd, mm, pc, pf or
sp. Default value is 1.00in.

\end{description}

The options of the prerelease have been reduced in relation to Beebe's
driver family. The final version will support the full set of options
again.

The environment variable {\rm TEXFONTS} specifies the directory
path for finding font files. The variable {\rm TEXINPUT} defines
the directory path for find\-ing files which are not in the working
directory.

\pagebreak

\section{Implementation Efficiency}

According to Beebe we measured the runtime for processing this document
on a ACER 1100. The ACER 1100 is a 386 based micro computer running at
16 MHz. Here are the results:
\begin{center}
\renewcommand{\arraystretch}{1.2}
\begin{tabular}{|l|r|r|}
\hline
Operation & \multicolumn{1}{c|}{time} & \multicolumn{1}{c|}{size} \\
(using PK fonts)           & \multicolumn{1}{c|}{(sec)}
                                 & \multicolumn{1}{c|}{(kbytes)}\\
\hline\hline
\RUM djet (300 dpi) & 100 & 942 \\
\RUM djet (150 dpi) &  67 & 271 \\
\RUM djet (100 dpi) &  50 & 134 \\
dvijep (300 dpi)           &  62 &  60 \\
dvitos (180 dpi)           & 176 & 827 \\
\hline
\end{tabular}
\end{center}

The values for {\rm dvijep} and {\rm dvitos} have been added for
comparison.

\section{Outlook}

The \TeX\ toolkit for the PC which we mentioned above will be ready for
distribution in the second part of 1989.

It will consist of:

\begin{itemize}

\item the DVI driver {\bf\RUM djet} for the HP DeskJet (300, 150 and 100
dpi),

\item the DVI driver {\bf\RUM nec} for the NEC P5/P6/P7 printer family
(360 and 180 dpi),

\item the DVI driver {\bf\RUM view} for a wide range of video cards
including those with 1024$\times$768 pixel resolution,

\item the Program {\bf Adi2Pxl} which converts Autodesk's ADI pixel file
format into \TeX\ fonts,

\item a set of conversion programs which converts the grafic output of
nearly every PC Program to ADI file format and

\item a set of utility programs to manipulate ADI files and \TeX\ fonts
including a font editor.

\end{itemize}

The {\bf\RUM djet} driver itself will be extended by several additional
features for example the possibility to specify a list of pathnames for
searching pixel or TFM files.

Although we consider the released preliminary version of \RUM djet
to be rather stable, we are of course highly interested in bugs or
malefunctions which will show up during everyday use. Please don't
hesitate to write us if you run into an error.

\section{Obtaining the Programm}

\begin{itemize}

\item Get it from the file server {\tt listserv@dhdurz1.bitnet}.

\item Send one of the following formatted disks to the authors:
      \begin{example}
         3\,1/2"\ \ 720 KB\\
         3\,1/2"\ \ 1.44 MB\\
         5\,1/4"\ \ 360 KB\\
         5\,1/4"\ \ 1.2 MB
      \end{example}
\end{itemize}

\subsection{Addresses of the authors}

\descriptioncolontrue
\descriptionlefttrue
\begin{description}

\item[Postal mail]
\parbox[t]{.5\textwidth}%
          {Wolfgang Kaspar\\
           University of M\"unster\\
           University Computing Center\\
           Einsteinstra\ss e 60\\
           D-4400 M\"unster\\
           Federal Republic of Germany
          }
\parbox[t]{.5\textwidth}%
          {\HWK\\
           University of M\"unster\\
           University Computing Center\\
           Einsteinstra\ss e 60\\
           D-4400 M\"unster\\
           Federal Republic of Germany
          }

\item[E-mail]
\parbox[t]{.5\textwidth}%
          {\tt urz86@dmswwu1a.bitnet}
\parbox[t]{.5\textwidth}%
          {\tt urz10@dmswwu1a.bitnet}

\item[phone]
\parbox[t]{.5\textwidth}%
          {49\ 2\,51\ 83\,24\,73}
\parbox[t]{.5\textwidth}%
          {49\ 2\,51\ 83\,24\,67}

\end{description}

\end{document}
